///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version Oct  8 2012)
// http://www.wxformbuilder.org/
//
// PLEASE DO "NOT" EDIT THIS FILE!
///////////////////////////////////////////////////////////////////////////

#ifndef __MYFRAME_H__
#define __MYFRAME_H__

#include <wx/artprov.h>
#include <wx/xrc/xmlres.h>
#include <wx/panel.h>
#include <wx/gdicmn.h>
#include <wx/font.h>
#include <wx/colour.h>
#include <wx/settings.h>
#include <wx/string.h>
#include <wx/sizer.h>
#include <wx/statbox.h>
#include <wx/stattext.h>
#include <wx/button.h>
#include <wx/checkbox.h>
#include <wx/radiobut.h>
#include <wx/statusbr.h>
#include <wx/frame.h>
#include <time.h>
#include "myimagepanel.h"
#include "../Camera/mycamera.h"

///////////////////////////////////////////////////////////////////////////

class MyCamera;

///////////////////////////////////////////////////////////////////////////////
/// Class MyFrame
///////////////////////////////////////////////////////////////////////////////
class MyFrame : public wxFrame 
{
	private:
	
	protected:
		wxPanel* m_panel1;
		wxPanel* m_panel12;
		MyImagePanel* m_panDisplay1;
		MyImagePanel* m_panDisplay2;
		MyImagePanel* m_panDisplay3;
		wxPanel* m_panel2;
		wxPanel* m_panel7;
		wxStaticText* m_staticText1;
		wxStaticText* m_stxtCamStatus1;
		wxButton* m_btCamOpen1;
		wxPanel* m_panel8;
		wxStaticText* m_staticText11;
		wxStaticText* m_stxtCamStatus2;
		wxButton* m_btCamOpen2;
		wxPanel* m_panel121;
		wxButton* m_btCapture1;
		wxButton* m_btCapture2;
		wxButton* m_btCapturePair;
		wxCheckBox* m_cbShowCorners;
		wxPanel* m_panel11;
		wxButton* m_btCalibCam1;
		wxButton* m_btCalibCam2;
		wxButton* m_btStereoCalib;
		wxPanel* m_panel10;
		wxCheckBox* m_cbStartStitching;
		wxRadioButton* m_rbAuto;
		wxRadioButton* m_rbHomo;
		wxStatusBar* m_statusBar;
		
		// Virtual event handlers, overide them in your derived class
		virtual void OpenCam1( wxCommandEvent& event );// { event.Skip(); }
		virtual void OpenCam2( wxCommandEvent& event );// { event.Skip(); }
		virtual void CaptureCam1( wxCommandEvent& event );// { event.Skip(); }
		virtual void CaptureCam2( wxCommandEvent& event );// { event.Skip(); }
		virtual void CapturePair( wxCommandEvent& event );// { event.Skip(); }
		virtual void ShowCorners( wxCommandEvent& event );// { event.Skip(); }

		virtual void CalibCam1( wxCommandEvent& event ) { event.Skip(); }
		virtual void CalibCam2( wxCommandEvent& event ) { event.Skip(); }
		virtual void RunStereoCalib( wxCommandEvent& event );// { event.Skip(); }
		virtual void StartStitching( wxCommandEvent& event );// { event.Skip(); }
		virtual void SelectAutoStitch( wxCommandEvent& event );// { event.Skip(); }
		virtual void SelectHomography( wxCommandEvent& event );// { event.Skip(); }
		
	public:
		MyCamera *m_camera;
		bool m_startStitching;
		bool m_autoStitching;
		bool m_homoStitching;

	public:
		clock_t m_timeLabel;

	public:
		MyImagePanel* GetImagePanel1();
		MyImagePanel* GetImagePanel2();
		MyImagePanel* GetImagePanel3();
		void SetStatusBar(String status);

	private:
		wxString GenStatus(String identity, int num);
	
	public:
		
		MyFrame( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxT("Stitching"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 850,545 ), long style = wxDEFAULT_FRAME_STYLE|wxTAB_TRAVERSAL );
		
		~MyFrame();
	
};

#endif //__MYFRAME_H__
